/*
位运算符或 | 的应用  置1：将一个数的指定位数置为1,本题将第六位置为1：
原始数是0xa2，操作之后值为：0xe2

位运算符与 & 的应用  清零：将一个数的指定位数置为0,本题将第2位置为0：
原始数是0xa4，操作之后值为：0xa0

位运算符异或 ^ 的应用  翻转：将一个数的指定位数取反,本题将第2位取反：
原始数是0xa4，操作之后值为：0xa0

*/
#include<stdio.h>
int main(){
	unsigned char a = 0xa2,n = 6;
	a |= (1 << n);
	printf("位运算符或 | 的应用  置1：将一个数的指定位数置为1,本题将第六位置为1：\n");
	printf("原始数是0xa2，操作之后值为：%#x\n\n",a);
	
	printf("位运算符与 & 的应用  清零：将一个数的指定位数置为0,本题将第2位置为0：\n");
	unsigned char a1 = 0xa4,n1=2;
	a1 &= ~(1<<n1);
	printf("原始数是0xa4，操作之后值为：%#x\n\n",a1);
	
	printf("位运算符异或 ^ 的应用  翻转：将一个数的指定位数取反,本题将第2位取反：\n");
	unsigned char a2 = 0xa4,n2=2;
	a2 ^= 1<<n2;
	printf("原始数是0xa4，操作之后值为：%#x\n\n",a2);
	
	return 0;
}
